package ace.cmp.security.core.impl.constant;

/**
 * @author caspar
 * @date 2023/3/6 15:18
 */
public interface Oauth2Constant {
  /**
   * token active 字段
   */
  String TOKEN_ACTIVE_KEY = "active";

  /**
   * token sub字段
   */
  String TOKEN_SUBJECT_KEY = "sub";

  /**
   * token scope 字段
   */
  String TOKEN_SCOPE_KEY = "scope";

  /**
   * token aud 字段
   */
  String TOKEN_AUD_KEY = "aud";

  /**
   * token nbf 字段
   */
  String TOKEN_NOT_BEFORE_KEY = "nbf";

  /**
   * token 发布时间 字段
   */
  String TOKEN_ISSUED_AT_KEY = "iat";

  /**
   * token 签发方 字段
   */
  String TOKEN_ISSUER_KEY = "iss";

  /**
   * token 过期时间 字段
   */
  String TOKEN_EXPIRED_KEY = "exp";

  /**
   * token 客户端id 字段
   */
  String TOKEN_CLIENT_ID_KEY = "client_id";

  /**
   * 客户端 支持 用户信息 SCOPE
   */
  String CLIENT_SCOPE_USERINFO_KEY = "userinfo";

  /**
   * 客户端 支持 用户信息 SCOPE
   */
  String CLIENT_SCOPE_INTERNAL_CLIENT_KEY = "internal_client";

  /**
   * token attributes 字段
   */
  String TOKEN_ATTRIBUTES_KEY = "attributes";

  /**
   * 内部客户端，用于rpc
   */
  String SCOPE_INTERNAL_CLIENT = "SCOPE_" + CLIENT_SCOPE_INTERNAL_CLIENT_KEY;

  /**
   * 客户端认证，用于带用户信息
   */
  String SCOPE_USERINFO = "SCOPE_" + CLIENT_SCOPE_USERINFO_KEY;

  /**
   * token 自定义声明键值
   */
  String TOKEN_CLAIMS_USERINFO_ATTRIBUTE_KEY = "userinfo";
}
